﻿using Furion.DependencyInjection;
using ZeroAdmin.Application.Entity;
using ZeroAdmin.Core;

namespace ZeroAdmin.Application;

/// <summary>
/// 角色服务
/// </summary>
public interface IRoleService : ITransient
{
    /// <summary>
    /// 查询全部角色
    /// </summary>
    /// <returns></returns>
    Task<List<Role>> GetList();

    /// <summary>
    /// 查询角色列表
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<PageListBase<Role>> GetPageList(QueryRoleInput input);

    /// <summary>
    /// 新增角色
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<long> AddRole(Role input);

    /// <summary>
    /// 更新角色
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<long> UpdateRole(Role input);

    /// <summary>
    /// 删除角色
    /// </summary>
    /// <param name="RoleId"></param>
    /// <returns></returns>
    Task DeleteRole(long RoleId);
}

